import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {MaterialModule} from './material-module';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {BytePipe} from '../pipe/byte.pipe';
import {RatePipePipe} from '../pipe/rate.pipe';
import {TextPipe} from '../pipe/text.pipe';
import {NumberToArrayPipe} from '../pipe/number-to-array.pipe';
import {AlertDialogComponent} from '../component/dialog/alert.dialog.component';
import {LoadingDialogComponent} from '../component/dialog/loading.dialog.component';
import {IconTypeComponent} from '../component/icon-type/icon-type.component';
import {PosterPlotComponent} from '../component/poster-plot/poster-plot.component';

@NgModule({
  declarations: [
    // pipes
    BytePipe,
    RatePipePipe,
    TextPipe,
    NumberToArrayPipe,
    // components
    AlertDialogComponent,
    LoadingDialogComponent,
    IconTypeComponent,
    PosterPlotComponent,
  ],
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    MaterialModule,
  ],
  exports: [
    // pipes
    BytePipe,
    RatePipePipe,
    TextPipe,
    NumberToArrayPipe,
    // components
    IconTypeComponent,
    PosterPlotComponent,
    // other
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    MaterialModule,
  ]
})
export class SharedModule {
}
